<?php
class ContratosController extends AppController {

	var $name = 'Contratos';
	var $helpers = array('Ajax'); //Nuevo Cristina : Para relacionar los combos
    var $uses = array('Contrato','cliente','gerencia');


	function beforeFilter () {
		parent::beforeFilter();
		$this->Auth->allow('add', 'login', 'index', 'edit');
		//$this->Auth->allowedActions = array('*');
	}

	function index() {
		$this->Contrato->recursive = 0;
		$this->set('contratos', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('contrato Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('contrato', $this->Contrato->read(null, $id));
	}

	function add() {

		$opc = array(
			'fields' => array('Cliente.id', 'Cliente.nm_cliente'),
			'order' => 'Cliente.nm_cliente'
		);
		$this->set('clientes', $this->Contrato->Cliente->find('list', $opc));

		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue agregado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
			$this->Contrato->create();

			//debug($this->data);
			//exit;
			if ($this->Contrato->save($this->data)) {

				$this->Session->setFlash('Datos agregados exitosamente.');
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash('Datos no agregados. Por favor, intente de nuevo.');
			}
		}
	}

    //     $gerencias = $this->Contrato->Gerencia->find('list', array('fields' => array('Gerencia.id', 'Gerencia.nm_gerencia')));
	//	 $clientes = $this->Contrato->Cliente->find('list', array('fields' => array('Cliente.id', 'Cliente.nm_cliente')));
	//	 $this->set(compact('clientes', 'gerencias'));

	function cargar_gerencias () {
		$cliente_id = $this->data['Contrato']['cliente_id'];
		$opc = array(
			'fields' => array('Gerencia.id', 'Gerencia.nm_gerencia'),
			'conditions' => array('cliente_id' => $cliente_id)
		);
		$gerencias = $this->Contrato->Gerencia->find('list', $opc);
		$this->set(compact('gerencias'));
	}

	function update_select()
        {
                if (!empty($this->data['Gerencia']['cliente_id']))
                {
                        $cliente_id = $this->data['Gerencia']['cliente_id'];
                        $gerencia = $this->Gerencia->find('list', array('fields'=>array('Gerencia.id','Gerencia.nm_gerencia'),'order'=>'Gerencia.nm_gerencia ASC','conditions'=>'Gerencia.cliente_id='.$cliente_id));
                }
                else
                {
                        $gerencia = $this->gerencia->find('list', array('fields'=>array('Gerencia.id','Gerencia.nm_gerencia'),'order'=>'Gerencia.nm_gerencia ASC'));
                }
                $this->set('options', Set::combine($gerencia, "{n}.Gerencia.id","{n}.Gerencia.nombre"));
                $this->render('../elements/update_select', 'ajax');
        }


	function edit($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue editado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('contrato Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Contrato->save($this->data)) {
				$this->Session->setFlash(__('Datos editados exitosamente.', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Datos no editados. Por favor, intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Contrato->read(null, $id);
		}
		$gerencias = $this->Contrato->Gerencia->find('list', array('fields' => array('Gerencia.id', 'Gerencia.nm_gerencia')));
		$clientes = $this->Contrato->Cliente->find('list', array('fields' => array('Cliente.id', 'Cliente.nm_cliente')));
		$this->set(compact('gerencias', 'clientes'));
	}

	function delete($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue borrado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id) {
			$this->Session->setFlash(__('Id Inválida para contrato', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Contrato->delete($id)) {
			$this->Session->setFlash(__('Datos borrados exitosamente', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Contrato no fue borrado', true));
		$this->redirect(array('action' => 'index'));
	}
	function admin_index() {
		$this->Contrato->recursive = 0;
		$this->set('contratos', $this->paginate());
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('contrato Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('contrato', $this->Contrato->read(null, $id));
	}

	function admin_add() {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue agregado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
			$this->Contrato->create();
			if ($this->Contrato->save($this->data)) {

				$this->Session->setFlash('Datos agregados exitosamente.');
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash('Datos no agregados. Por favor, intente de nuevo.');
			}
		}
		$gerencias = $this->Contrato->Gerencia->find('list', array('fields' => array('Gerencia.id', 'Gerencia.nm_gerencia')));
		$clientes = $this->Contrato->Cliente->find('list', array('fields' => array('Cliente.id', 'Cliente.nm_cliente')));
		$this->set(compact('gerencias', 'clientes'));
	}

	function admin_edit($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue editado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('contrato Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Contrato->save($this->data)) {
				$this->Session->setFlash(__('Datos editados exitosamente.', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Datos no editados. Por favor, intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Contrato->read(null, $id);
		}
		$gerencias = $this->Contrato->Gerencium->find('list', array('fields' => array('Gerencium.id', 'Gerencium.nombre')));
		$clientes = $this->Contrato->Cliente->find('list', array('fields' => array('Cliente.id', 'Cliente.nombre')));
		$this->set(compact('gerencias', 'clientes'));
	}

	function admin_delete($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue borrado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id) {
			$this->Session->setFlash(__('Id Inválida para contrato', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Contrato->delete($id)) {
			$this->Session->setFlash(__('Datos borrados exitosamente', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Contrato no fue borrado', true));
		$this->redirect(array('action' => 'index'));
	}

	function xls () {
		$this->index();
	}
}
?>